From 6c4c93b8d047070ac011d2c80327ea9f5449d30c Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 27 Jul 2020 00:22:15 -0400 Subject: [PATCH] Add some more a11y tests Add some tests that exercise the accessible machinery without any connection to widgets. --- testsuite/a11y/accessible.c | 637 ++++++++++++++++++++++++++++++++++++ testsuite/a11y/meson.build | 1 + 2 files changed, 638 insertions(+) create mode 100644 testsuite/a11y/accessible.c diff --git a/testsuite/a11y/accessible.c b/testsuite/a11y/accessible.c new file mode 100644 index 0000000000..e43001f55c --- /dev/null +++ b/testsuite/a11y/accessible.c @@ -0,0 +1,637 @@ +#include +#include "gtk/gtkaccessibleprivate.h" + +/* These tests verify that the GtkAccessible machinery works, independent + * of any concrete widget accessible implementations. Therefore, we use + * a dummy object that implements GtkAccessible + */ +typedef struct +{ + GObject parent_instance; + + GtkAccessibleRole role; + GtkATContext *at_context; +} TestObject; + +typedef struct +{ + GObjectClass parent_class; +} TestObjectClass; + +enum { + PROP_ACCESSIBLE_ROLE = 1, + NUM_PROPERTIES +}; + +static GtkATContext * +test_object_accessible_get_at_context (GtkAccessible *accessible) +{ + TestObject *self = (TestObject*)accessible; + + if (self->at_context == NULL) + self->at_context = g_object_new (g_type_from_name ("GtkTestATContext"), + "accessible-role", self->role, + "accessible", accessible, + NULL); + + return self->at_context; +} + +static void +test_object_accessible_init (GtkAccessibleInterface *iface) +{ + iface->get_at_context = test_object_accessible_get_at_context; +} + +G_DEFINE_TYPE_WITH_CODE (TestObject, test_object, G_TYPE_OBJECT, + G_IMPLEMENT_INTERFACE (GTK_TYPE_ACCESSIBLE, + test_object_accessible_init)) + +static void +test_object_init (TestObject *self) +{ + self->role = GTK_ACCESSIBLE_ROLE_WIDGET; +} + +static void +test_object_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + TestObject *self = (TestObject *)object; + + switch (prop_id) + { + case PROP_ACCESSIBLE_ROLE: + self->role = g_value_get_enum (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static void +test_object_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + TestObject *self = (TestObject *)object; + + switch (prop_id) + { + case PROP_ACCESSIBLE_ROLE: + g_value_set_enum (value, self->role); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static void +test_object_class_init (TestObjectClass *class) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (class); + + gobject_class->set_property = test_object_set_property; + gobject_class->get_property = test_object_get_property; + + g_object_class_override_property (gobject_class, PROP_ACCESSIBLE_ROLE, "accessible-role"); +} + +static TestObject * +test_object_new (GtkAccessibleRole role) +{ + return g_object_new (test_object_get_type (), + "accessible-role", role, + NULL); +} + +/* Tests for states */ + +static void +test_boolean_state (gconstpointer data) +{ + GtkAccessibleState state = GPOINTER_TO_UINT (data); + TestObject *object; + + object = test_object_new (GTK_ACCESSIBLE_ROLE_CHECKBOX); + + gtk_test_accessible_assert_state (object, state, FALSE); + + gtk_accessible_update_state (GTK_ACCESSIBLE (object), + state, TRUE, + -1); + gtk_test_accessible_assert_state (object, state, TRUE); + + gtk_accessible_update_state (GTK_ACCESSIBLE (object), + state, FALSE, + -1); + gtk_test_accessible_assert_state (object, state, FALSE); + + g_object_unref (object); +} + +static void +test_maybe_boolean_state (gconstpointer data) +{ + GtkAccessibleState state = GPOINTER_TO_UINT (data); + TestObject *object; + + object = test_object_new (GTK_ACCESSIBLE_ROLE_CHECKBOX); + + gtk_test_accessible_assert_state (object, state, GTK_ACCESSIBLE_VALUE_UNDEFINED); + + gtk_accessible_update_state (GTK_ACCESSIBLE (object), + state, TRUE, + -1); + gtk_test_accessible_assert_state (object, state, TRUE); + + gtk_accessible_update_state (GTK_ACCESSIBLE (object), + state, FALSE, + -1); + gtk_test_accessible_assert_state (object, state, FALSE); + + gtk_accessible_update_state (GTK_ACCESSIBLE (object), + state, GTK_ACCESSIBLE_VALUE_UNDEFINED, + -1); + gtk_test_accessible_assert_state (object, state, GTK_ACCESSIBLE_VALUE_UNDEFINED); + + g_object_unref (object); +} + +static void +test_tristate_state (gconstpointer data) +{ + GtkAccessibleState state = GPOINTER_TO_UINT (data); + TestObject *object; + + object = test_object_new (GTK_ACCESSIBLE_ROLE_CHECKBOX); + + gtk_test_accessible_assert_role (object, GTK_ACCESSIBLE_ROLE_CHECKBOX); + + gtk_test_accessible_assert_state (object, state, GTK_ACCESSIBLE_VALUE_UNDEFINED); + + gtk_accessible_update_state (GTK_ACCESSIBLE (object), + state, GTK_ACCESSIBLE_TRISTATE_FALSE, + -1); + gtk_test_accessible_assert_state (object, state, GTK_ACCESSIBLE_TRISTATE_FALSE); + + gtk_accessible_update_state (GTK_ACCESSIBLE (object), + state, GTK_ACCESSIBLE_TRISTATE_TRUE, + -1); + gtk_test_accessible_assert_state (object, state, GTK_ACCESSIBLE_TRISTATE_TRUE); + + gtk_accessible_update_state (GTK_ACCESSIBLE (object), + state, GTK_ACCESSIBLE_TRISTATE_MIXED, + -1); + gtk_test_accessible_assert_state (object, state, GTK_ACCESSIBLE_TRISTATE_MIXED); + + gtk_accessible_update_state (GTK_ACCESSIBLE (object), + state, GTK_ACCESSIBLE_VALUE_UNDEFINED, + -1); + gtk_test_accessible_assert_state (object, state, GTK_ACCESSIBLE_VALUE_UNDEFINED); + + g_object_unref (object); +} + +static void +test_invalid_state (gconstpointer data) +{ + GtkAccessibleState state = GPOINTER_TO_UINT (data); + TestObject *object; + + object = test_object_new (GTK_ACCESSIBLE_ROLE_CHECKBOX); + + gtk_test_accessible_assert_role (object, GTK_ACCESSIBLE_ROLE_CHECKBOX); + + gtk_test_accessible_assert_state (object, state, GTK_ACCESSIBLE_INVALID_FALSE); + + gtk_accessible_update_state (GTK_ACCESSIBLE (object), + state, GTK_ACCESSIBLE_INVALID_TRUE, + -1); + gtk_test_accessible_assert_state (object, state, GTK_ACCESSIBLE_INVALID_TRUE); + + gtk_accessible_update_state (GTK_ACCESSIBLE (object), + state, GTK_ACCESSIBLE_INVALID_GRAMMAR, + -1); + gtk_test_accessible_assert_state (object, state, GTK_ACCESSIBLE_INVALID_GRAMMAR); + + gtk_accessible_update_state (GTK_ACCESSIBLE (object), + state, GTK_ACCESSIBLE_INVALID_SPELLING, + -1); + gtk_test_accessible_assert_state (object, state, GTK_ACCESSIBLE_INVALID_SPELLING); + + gtk_accessible_update_state (GTK_ACCESSIBLE (object), + state, GTK_ACCESSIBLE_INVALID_FALSE, + -1); + gtk_test_accessible_assert_state (object, state, GTK_ACCESSIBLE_INVALID_FALSE); + + g_object_unref (object); +} + +static void +test_autocomplete_property (gconstpointer data) +{ + GtkAccessibleProperty property = GPOINTER_TO_UINT (data); + TestObject *object; + + object = test_object_new (GTK_ACCESSIBLE_ROLE_CHECKBOX); + + gtk_test_accessible_assert_role (object, GTK_ACCESSIBLE_ROLE_CHECKBOX); + + gtk_test_accessible_assert_property (object, property, GTK_ACCESSIBLE_AUTOCOMPLETE_NONE); + gtk_accessible_update_property (GTK_ACCESSIBLE (object), + property, GTK_ACCESSIBLE_AUTOCOMPLETE_INLINE, + -1); + gtk_test_accessible_assert_property (object, property, GTK_ACCESSIBLE_AUTOCOMPLETE_INLINE); + + gtk_accessible_update_property (GTK_ACCESSIBLE (object), + property, GTK_ACCESSIBLE_AUTOCOMPLETE_LIST, + -1); + gtk_test_accessible_assert_property (object, property, GTK_ACCESSIBLE_AUTOCOMPLETE_LIST); + + gtk_accessible_update_property (GTK_ACCESSIBLE (object), + property, GTK_ACCESSIBLE_AUTOCOMPLETE_BOTH, + -1); + gtk_test_accessible_assert_property (object, property, GTK_ACCESSIBLE_AUTOCOMPLETE_BOTH); + + gtk_accessible_update_property (GTK_ACCESSIBLE (object), + property, GTK_ACCESSIBLE_AUTOCOMPLETE_NONE, + -1); + gtk_test_accessible_assert_property (object, property, GTK_ACCESSIBLE_AUTOCOMPLETE_NONE); + + g_object_unref (object); +} + +static void +test_string_property (gconstpointer data) +{ + GtkAccessibleProperty property = GPOINTER_TO_UINT (data); + TestObject *object; + + object = test_object_new (GTK_ACCESSIBLE_ROLE_CHECKBOX); + + gtk_test_accessible_assert_role (object, GTK_ACCESSIBLE_ROLE_CHECKBOX); + + gtk_test_accessible_assert_property (object, property, ""); + + gtk_accessible_update_property (GTK_ACCESSIBLE (object), + property, "some string that holds no particular value", + -1); + gtk_test_accessible_assert_property (object, property, "some string that holds no particular value"); + + gtk_accessible_update_property (GTK_ACCESSIBLE (object), + property, "see\nif\nnewlines\nwork ?!", + -1); + gtk_test_accessible_assert_property (object, property, "see\nif\nnewlines\nwork ?!"); + + gtk_accessible_update_property (GTK_ACCESSIBLE (object), + property, "", + -1); + gtk_test_accessible_assert_property (object, property, ""); + + g_object_unref (object); +} + +static void +test_boolean_property (gconstpointer data) +{ + GtkAccessibleProperty property = GPOINTER_TO_UINT (data); + TestObject *object; + + object = test_object_new (GTK_ACCESSIBLE_ROLE_CHECKBOX); + + gtk_test_accessible_assert_role (object, GTK_ACCESSIBLE_ROLE_CHECKBOX); + + gtk_test_accessible_assert_property (object, property, FALSE); + + gtk_accessible_update_property (GTK_ACCESSIBLE (object), + property, TRUE, + -1); + gtk_test_accessible_assert_property (object, property, TRUE); + + gtk_accessible_update_property (GTK_ACCESSIBLE (object), + property, FALSE, + -1); + gtk_test_accessible_assert_property (object, property, FALSE); + + g_object_unref (object); +} + +static void +test_int_property (gconstpointer data) +{ + GtkAccessibleProperty property = GPOINTER_TO_UINT (data); + TestObject *object; + + object = test_object_new (GTK_ACCESSIBLE_ROLE_CHECKBOX); + + gtk_test_accessible_assert_role (object, GTK_ACCESSIBLE_ROLE_CHECKBOX); + + gtk_test_accessible_assert_property (object, property, 0); + + gtk_accessible_update_property (GTK_ACCESSIBLE (object), + property, 1, + -1); + gtk_test_accessible_assert_property (object, property, 1); + + gtk_accessible_update_property (GTK_ACCESSIBLE (object), + property, -1, + -1); + gtk_test_accessible_assert_property (object, property, -1); + + gtk_accessible_update_property (GTK_ACCESSIBLE (object), + property, 100, + -1); + gtk_test_accessible_assert_property (object, property, 100); + + g_object_unref (object); +} + +static void +test_number_property (gconstpointer data) +{ + GtkAccessibleProperty property = GPOINTER_TO_UINT (data); + TestObject *object; + + object = test_object_new (GTK_ACCESSIBLE_ROLE_CHECKBOX); + + gtk_test_accessible_assert_role (object, GTK_ACCESSIBLE_ROLE_CHECKBOX); + + gtk_test_accessible_assert_property (object, property, 0.); + + gtk_accessible_update_property (GTK_ACCESSIBLE (object), + property, 1.5, + -1); + gtk_test_accessible_assert_property (object, property, 1.5); + + gtk_accessible_update_property (GTK_ACCESSIBLE (object), + property, -1., + -1); + gtk_test_accessible_assert_property (object, property, -1.); + + gtk_accessible_update_property (GTK_ACCESSIBLE (object), + property, 1e6, + -1); + gtk_test_accessible_assert_property (object, property, 1e6); + + g_object_unref (object); +} + +static void +test_orientation_property (gconstpointer data) +{ + GtkAccessibleProperty property = GPOINTER_TO_UINT (data); + TestObject *object; + + object = test_object_new (GTK_ACCESSIBLE_ROLE_CHECKBOX); + + gtk_test_accessible_assert_role (object, GTK_ACCESSIBLE_ROLE_CHECKBOX); + + gtk_test_accessible_assert_property (object, property, GTK_ACCESSIBLE_VALUE_UNDEFINED); + + gtk_accessible_update_property (GTK_ACCESSIBLE (object), + property, GTK_ORIENTATION_HORIZONTAL, + -1); + gtk_test_accessible_assert_property (object, property, GTK_ORIENTATION_HORIZONTAL); + + gtk_accessible_update_property (GTK_ACCESSIBLE (object), + property, GTK_ORIENTATION_VERTICAL, + -1); + gtk_test_accessible_assert_property (object, property, GTK_ORIENTATION_VERTICAL); + + gtk_accessible_update_property (GTK_ACCESSIBLE (object), + property, GTK_ACCESSIBLE_VALUE_UNDEFINED, + -1); + gtk_test_accessible_assert_property (object, property, GTK_ACCESSIBLE_VALUE_UNDEFINED); + + g_object_unref (object); +} + +static void +test_sort_property (gconstpointer data) +{ + GtkAccessibleProperty property = GPOINTER_TO_UINT (data); + TestObject *object; + + object = test_object_new (GTK_ACCESSIBLE_ROLE_CHECKBOX); + + gtk_test_accessible_assert_role (object, GTK_ACCESSIBLE_ROLE_CHECKBOX); + + gtk_test_accessible_assert_property (object, property, GTK_ACCESSIBLE_SORT_NONE); + + gtk_accessible_update_property (GTK_ACCESSIBLE (object), + property, GTK_ACCESSIBLE_SORT_ASCENDING, + -1); + gtk_test_accessible_assert_property (object, property, GTK_ACCESSIBLE_SORT_ASCENDING); + + gtk_accessible_update_property (GTK_ACCESSIBLE (object), + property, GTK_ACCESSIBLE_SORT_DESCENDING, + -1); + gtk_test_accessible_assert_property (object, property, GTK_ACCESSIBLE_SORT_DESCENDING); + + gtk_accessible_update_property (GTK_ACCESSIBLE (object), + property, GTK_ACCESSIBLE_SORT_OTHER, + -1); + gtk_test_accessible_assert_property (object, property, GTK_ACCESSIBLE_SORT_OTHER); + + gtk_accessible_update_property (GTK_ACCESSIBLE (object), + property, GTK_ACCESSIBLE_SORT_NONE, + -1); + gtk_test_accessible_assert_property (object, property, GTK_ACCESSIBLE_SORT_NONE); + + g_object_unref (object); +} + +static void +test_int_relation (gconstpointer data) +{ + GtkAccessibleRelation relation = GPOINTER_TO_UINT (data); + TestObject *object; + + object = test_object_new (GTK_ACCESSIBLE_ROLE_CHECKBOX); + + gtk_test_accessible_assert_role (object, GTK_ACCESSIBLE_ROLE_CHECKBOX); + + gtk_test_accessible_assert_relation (object, relation, 0); + + gtk_accessible_update_relation (GTK_ACCESSIBLE (object), + relation, 1, + -1); + gtk_test_accessible_assert_relation (object, relation, 1); + + gtk_accessible_update_relation (GTK_ACCESSIBLE (object), + relation, -1, + -1); + gtk_test_accessible_assert_relation (object, relation, -1); + + gtk_accessible_update_relation (GTK_ACCESSIBLE (object), + relation, 100, + -1); + gtk_test_accessible_assert_relation (object, relation, 100); + + g_object_unref (object); +} + +static void +test_string_relation (gconstpointer data) +{ + GtkAccessibleRelation relation = GPOINTER_TO_UINT (data); + TestObject *object; + + object = test_object_new (GTK_ACCESSIBLE_ROLE_CHECKBOX); + + gtk_test_accessible_assert_role (object, GTK_ACCESSIBLE_ROLE_CHECKBOX); + + gtk_test_accessible_assert_relation (object, relation, ""); + + gtk_accessible_update_relation (GTK_ACCESSIBLE (object), + relation, "some string that holds no particular value", + -1); + gtk_test_accessible_assert_relation (object, relation, "some string that holds no particular value"); + + gtk_accessible_update_relation (GTK_ACCESSIBLE (object), + relation, "see\nif\nnewlines\nwork ?!", + -1); + gtk_test_accessible_assert_relation (object, relation, "see\nif\nnewlines\nwork ?!"); + + gtk_accessible_update_relation (GTK_ACCESSIBLE (object), + relation, "", + -1); + gtk_test_accessible_assert_relation (object, relation, ""); + + g_object_unref (object); +} + +static void +test_ref_relation (gconstpointer data) +{ + GtkAccessibleRelation relation = GPOINTER_TO_UINT (data); + TestObject *object; + TestObject *other; + + object = test_object_new (GTK_ACCESSIBLE_ROLE_CHECKBOX); + other = test_object_new (GTK_ACCESSIBLE_ROLE_CHECKBOX); + + gtk_test_accessible_assert_role (object, GTK_ACCESSIBLE_ROLE_CHECKBOX); + + //gtk_test_accessible_assert_relation (object, relation, GTK_ACCESSIBLE_VALUE_UNDEFINED); + + gtk_accessible_update_relation (GTK_ACCESSIBLE (object), + relation, other, + -1); + gtk_test_accessible_assert_relation (object, relation, other); + + g_object_unref (object); + g_object_unref (other); +} + +static void +test_reflist_relation (gconstpointer data) +{ + GtkAccessibleRelation relation = GPOINTER_TO_UINT (data); + TestObject *object; + TestObject *other; + TestObject *third; + GList *refs; + + object = test_object_new (GTK_ACCESSIBLE_ROLE_CHECKBOX); + other = test_object_new (GTK_ACCESSIBLE_ROLE_CHECKBOX); + third = test_object_new (GTK_ACCESSIBLE_ROLE_CHECKBOX); + + gtk_test_accessible_assert_role (object, GTK_ACCESSIBLE_ROLE_CHECKBOX); + + //gtk_test_accessible_assert_relation (object, relation, GTK_ACCESSIBLE_VALUE_UNDEFINED); + + refs = g_list_append (NULL, other); + + gtk_accessible_update_relation (GTK_ACCESSIBLE (object), + relation, refs, + -1); + gtk_test_accessible_assert_relation (object, relation, refs); + + refs = g_list_append (refs, third); + + gtk_accessible_update_relation (GTK_ACCESSIBLE (object), + relation, refs, + -1); + gtk_test_accessible_assert_relation (object, relation, refs); + + g_list_free (refs); + + g_object_unref (object); + g_object_unref (other); + g_object_unref (third); +} + +static void +ensure_test_at_context_type (void) +{ + GtkWidget *button; + + button = gtk_button_new (); + + g_object_ref_sink (button); + + g_object_unref (button); +} + +int +main (int argc, char *argv[]) +{ + gtk_test_init (&argc, &argv, NULL); + + ensure_test_at_context_type (); + + g_test_add_data_func ("/a11y/state/busy", GUINT_TO_POINTER (GTK_ACCESSIBLE_STATE_BUSY), test_boolean_state); + g_test_add_data_func ("/a11y/state/checked", GUINT_TO_POINTER (GTK_ACCESSIBLE_STATE_CHECKED), test_tristate_state); + g_test_add_data_func ("/a11y/state/disabled", GUINT_TO_POINTER (GTK_ACCESSIBLE_STATE_DISABLED), test_boolean_state); + g_test_add_data_func ("/a11y/state/expanded", GUINT_TO_POINTER (GTK_ACCESSIBLE_STATE_EXPANDED), test_maybe_boolean_state); + g_test_add_data_func ("/a11y/state/hidden", GUINT_TO_POINTER (GTK_ACCESSIBLE_STATE_HIDDEN), test_boolean_state); + g_test_add_data_func ("/a11y/state/invalid", GUINT_TO_POINTER (GTK_ACCESSIBLE_STATE_INVALID), test_invalid_state); + g_test_add_data_func ("/a11y/state/pressed", GUINT_TO_POINTER (GTK_ACCESSIBLE_STATE_PRESSED), test_tristate_state); + g_test_add_data_func ("/a11y/state/selected", GUINT_TO_POINTER (GTK_ACCESSIBLE_STATE_SELECTED), test_maybe_boolean_state); + + g_test_add_data_func ("/a11y/property/autocomplete", GUINT_TO_POINTER (GTK_ACCESSIBLE_PROPERTY_AUTOCOMPLETE), test_autocomplete_property); + g_test_add_data_func ("/a11y/property/description", GUINT_TO_POINTER (GTK_ACCESSIBLE_PROPERTY_DESCRIPTION), test_string_property); + g_test_add_data_func ("/a11y/property/has-popup", GUINT_TO_POINTER (GTK_ACCESSIBLE_PROPERTY_HAS_POPUP), test_boolean_property); + g_test_add_data_func ("/a11y/property/key-shortcuts", GUINT_TO_POINTER (GTK_ACCESSIBLE_PROPERTY_KEY_SHORTCUTS), test_string_property); + g_test_add_data_func ("/a11y/property/label", GUINT_TO_POINTER (GTK_ACCESSIBLE_PROPERTY_LABEL), test_string_property); + g_test_add_data_func ("/a11y/property/level", GUINT_TO_POINTER (GTK_ACCESSIBLE_PROPERTY_LEVEL), test_int_property); + g_test_add_data_func ("/a11y/property/modal", GUINT_TO_POINTER (GTK_ACCESSIBLE_PROPERTY_MODAL), test_boolean_property); + g_test_add_data_func ("/a11y/property/multi-line", GUINT_TO_POINTER (GTK_ACCESSIBLE_PROPERTY_MULTI_LINE), test_boolean_property); + g_test_add_data_func ("/a11y/property/multi-selectable", GUINT_TO_POINTER (GTK_ACCESSIBLE_PROPERTY_MULTI_SELECTABLE), test_boolean_property); + g_test_add_data_func ("/a11y/property/orientation", GUINT_TO_POINTER (GTK_ACCESSIBLE_PROPERTY_ORIENTATION), test_orientation_property); + g_test_add_data_func ("/a11y/property/placeholder", GUINT_TO_POINTER (GTK_ACCESSIBLE_PROPERTY_PLACEHOLDER), test_string_property); + g_test_add_data_func ("/a11y/property/read-only", GUINT_TO_POINTER (GTK_ACCESSIBLE_PROPERTY_READ_ONLY), test_boolean_property); + g_test_add_data_func ("/a11y/property/required", GUINT_TO_POINTER (GTK_ACCESSIBLE_PROPERTY_REQUIRED), test_boolean_property); + g_test_add_data_func ("/a11y/property/role-description", GUINT_TO_POINTER (GTK_ACCESSIBLE_PROPERTY_ROLE_DESCRIPTION), test_string_property); + g_test_add_data_func ("/a11y/property/sort", GUINT_TO_POINTER (GTK_ACCESSIBLE_PROPERTY_SORT), test_sort_property); + g_test_add_data_func ("/a11y/property/value-max", GUINT_TO_POINTER (GTK_ACCESSIBLE_PROPERTY_VALUE_MAX), test_number_property); + g_test_add_data_func ("/a11y/property/value-min", GUINT_TO_POINTER (GTK_ACCESSIBLE_PROPERTY_VALUE_MIN), test_number_property); + g_test_add_data_func ("/a11y/property/value-now", GUINT_TO_POINTER (GTK_ACCESSIBLE_PROPERTY_VALUE_NOW), test_number_property); + g_test_add_data_func ("/a11y/property/value-text", GUINT_TO_POINTER (GTK_ACCESSIBLE_PROPERTY_VALUE_TEXT), test_string_property); + + g_test_add_data_func ("/a11y/relation/active-descendant", GUINT_TO_POINTER (GTK_ACCESSIBLE_RELATION_ACTIVE_DESCENDANT), test_ref_relation); + g_test_add_data_func ("/a11y/relation/col-count", GUINT_TO_POINTER (GTK_ACCESSIBLE_RELATION_COL_COUNT), test_int_relation); + g_test_add_data_func ("/a11y/relation/col-index", GUINT_TO_POINTER (GTK_ACCESSIBLE_RELATION_COL_INDEX), test_int_relation); + g_test_add_data_func ("/a11y/relation/col-index-text", GUINT_TO_POINTER (GTK_ACCESSIBLE_RELATION_COL_INDEX_TEXT), test_string_relation); + g_test_add_data_func ("/a11y/relation/col-span", GUINT_TO_POINTER (GTK_ACCESSIBLE_RELATION_COL_SPAN), test_int_relation); + g_test_add_data_func ("/a11y/relation/controls", GUINT_TO_POINTER (GTK_ACCESSIBLE_RELATION_CONTROLS), test_reflist_relation); + g_test_add_data_func ("/a11y/relation/described-by", GUINT_TO_POINTER (GTK_ACCESSIBLE_RELATION_DESCRIBED_BY), test_reflist_relation); + g_test_add_data_func ("/a11y/relation/details", GUINT_TO_POINTER (GTK_ACCESSIBLE_RELATION_DETAILS), test_reflist_relation); + g_test_add_data_func ("/a11y/relation/error-message", GUINT_TO_POINTER (GTK_ACCESSIBLE_RELATION_ERROR_MESSAGE), test_ref_relation); + g_test_add_data_func ("/a11y/relation/flow-to", GUINT_TO_POINTER (GTK_ACCESSIBLE_RELATION_FLOW_TO), test_reflist_relation); + g_test_add_data_func ("/a11y/relation/labelled-by", GUINT_TO_POINTER (GTK_ACCESSIBLE_RELATION_LABELLED_BY), test_reflist_relation); + g_test_add_data_func ("/a11y/relation/owns", GUINT_TO_POINTER (GTK_ACCESSIBLE_RELATION_OWNS), test_reflist_relation); + g_test_add_data_func ("/a11y/relation/pos-in-set", GUINT_TO_POINTER (GTK_ACCESSIBLE_RELATION_POS_IN_SET), test_int_relation); + g_test_add_data_func ("/a11y/relation/row-count", GUINT_TO_POINTER (GTK_ACCESSIBLE_RELATION_ROW_COUNT), test_int_relation); + g_test_add_data_func ("/a11y/relation/row-index", GUINT_TO_POINTER (GTK_ACCESSIBLE_RELATION_ROW_INDEX), test_int_relation); + g_test_add_data_func ("/a11y/relation/row-index-text", GUINT_TO_POINTER (GTK_ACCESSIBLE_RELATION_ROW_INDEX_TEXT), test_string_relation); + g_test_add_data_func ("/a11y/relation/row-span", GUINT_TO_POINTER (GTK_ACCESSIBLE_RELATION_ROW_SPAN), test_int_relation); + g_test_add_data_func ("/a11y/relation/set-size", GUINT_TO_POINTER (GTK_ACCESSIBLE_RELATION_SET_SIZE), test_int_relation); + + return g_test_run (); +} diff --git a/testsuite/a11y/meson.build b/testsuite/a11y/meson.build index 9f0f45738b..643f580d89 100644 --- a/testsuite/a11y/meson.build +++ b/testsuite/a11y/meson.build @@ -11,6 +11,7 @@ testdatadir = join_paths(installed_test_datadir, 'gtk') # - 'suites': (array): additional test suites tests = [ { 'name': 'button' }, + { 'name': 'accessible' }, ] -- 2.30.2